#include <my_header.h>

/* Usage: ./2_getcwd */
int main(void){                                  
    // 方式1:使用栈数组作为getcwd返回值数组
    char path[1024] = {0};
    char *p = getcwd(path, sizeof(path));
    ERROR_CHECK(p, NULL, "getcwd");
    printf("cwd = %s\n", path); // 打印当前工作目录
    return 0;

    // 方式2：分配一个动态数组
   // char *path = (char *)malloc(1024);
   // ERROR_CHECK(path, NULL, "path");
   // char *p = getcwd(path, 1024);
   // free(path); // 需要free申请的动态空间
                
   /*getcwd函数来动态分配堆空间
    * char * cwd  = getcwd(NULL, 0);
    * ERROR_CHECK(cwd, NULL, "getcwd");
    *
    * puts(cwd);
    *
    * free(cwd);
    *
    * 
    */
}

/*
 *#include <unistd.h>     // 需要包含此头文件调用函数
char *getcwd(char *buf, size_t size);

形式参数：

buf: 指向存放当前工作目录字符串的字符数组
size: 这个数组的大小
返回值：

成功时，getcwd 返回一个指向 buf 的指针，buf 中包含了
当前工作目录的绝对路径。
失败时，返回 NULL，并设置 errno 以指示错误的原因。
出错的原因普遍是buf数组过小，无法容纳整个工作目录绝
对路径字符串。
 *
 */
